﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace AlgorithmTest
{
    // T_[四个数字排序]_[算法名]
    public class T_0205_FrequencySort : IAlgorithm
    {
        // 1636. 按照频率将数组升序排序

        /*
        给你一个整数数组 nums ，请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同，请你按照数值本身将它们 降序 排序。 
        请你返回排序后的数组。

        提示：
            1 <= nums.length <= 100
            -100 <= nums[i] <= 100
        */

        public void Test()
        {
            // 算法参数定义

            // 算法执行与打印
        }

        // 算法
        public int[] FrequencySort(int[] nums)
        {
            var groups = nums.GroupBy(x => x);
            return nums.OrderBy(x => groups.First(y => y.Key == x).Count()).ThenByDescending(x => x).ToArray();
        }
    }
}
